package br.com.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.dao.UsuarioDAO;
import br.com.model.Usuario;


public class UsuarioController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public UsuarioController() {
        super();
        
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		System.out.println("Chamando método GET");
		
		 //Obteve a lista do banco
		UsuarioDAO usuarioDAO = new UsuarioDAO();
		
		//captura parametro da tela
		String acao = request.getParameter("acao");
		
		if(acao!=null && acao.equals("exc")){
			
			//captura parametro da tela
			String id = request.getParameter("id");
			
			Usuario usuario = new Usuario();
			usuario.setId(Integer.parseInt(id));
			usuarioDAO.excluir(usuario);
			response.sendRedirect("usucontroller.do?acao=lis");
		}
		
		if(acao!=null && acao.equals("lis")){
			
			List<Usuario> lista = usuarioDAO.buscarTodos();
			
			request.setAttribute("lista", lista);
			request.setAttribute("meunome", "Lista de Usuários" );
			
			RequestDispatcher saida = request.getRequestDispatcher("listausuarios.jsp");
			saida.forward(request, response);
					
		}
		
		if(acao!=null && acao.equals("alt")){
			
			String id = request.getParameter("id");
			
			//buscar por id				
			Usuario usuario = usuarioDAO.buscarPorId(Integer.parseInt(id));
			//criando atributo no request para enviar para o jsp 
			request.setAttribute("usuario", usuario);
			//encaminhar para o frmcadusuario
			RequestDispatcher saida = request.getRequestDispatcher("frusuario.jsp");
			saida.forward(request, response);
			  
		}
		if(acao!=null && acao.equals("cad")){
			Usuario usuario = new Usuario();
			usuario.setId(0);
			usuario.setNome("");
			usuario.setSenha("");
			usuario.setLogin("");
			
			//criando atributo no request para enviar para o jsp 
			request.setAttribute("usuario", usuario);
			
			RequestDispatcher saida = request.getRequestDispatcher("frusuario.jsp");
			saida.forward(request, response);	
		}
		
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("Chamando método Post");
		
		//Recebe dados da tela
		String id = request.getParameter("txtid");
		String nome = request.getParameter("txtnome");
		String login = request.getParameter("txtlogin");
		String senha = request.getParameter("txtsenha");
		
		//Cria objeto usuario e seta os valores vindos da tela
		Usuario usuario = new Usuario();
		
		if(id!=""){
			usuario.setId(Integer.parseInt(id));
		}
		usuario.setNome(nome);
		usuario.setLogin(login);
		usuario.setSenha(senha);
		
		//pede para o usuarioDAO cadastrar no banco de dados
		UsuarioDAO  usuarioDAO = new UsuarioDAO();
		usuarioDAO.salvar(usuario);
		
		//Sáida ao Browser
		PrintWriter saida = response.getWriter();
		saida.print("Salvo!");
		
	}

}
